package model

import (
	"database/sql"
	"gorm.io/gorm"
)

type SvcPort struct {
	BaseModel
	SvcID int64 `json:"svc_id"`
	//服务的port
	SvcPort int32 `json:"svc_port"`
	//pod 中需要映射的port地址
	SvcTargetPort int32 `json:"svc_target_port"`
	//开启NodePort的模式下进行设置,范围30000-32767
	SvcNodePort int32 `json:"svc_node_port"`
	//端口协议
	SvcPortProtocol string `json:"svc_port_protocol"`
}

// 在同一个事务中更新数据
func (p *SvcPort) AfterDelete(tx *gorm.DB) (err error) {
	if p.DeletedAt.Valid {
		tx.Exec("UPDATE svc_port SET is_deleted = @is_deleted where svc_id = @svc_id",
			sql.Named("is_deleted", true), sql.Named("svc_id", p.SvcID))
	}
	return
}
